#include "ex_node.h"



Expr::Expr(int a) {
	p = new Int_node(a);
}


Expr::Expr(const string & op,  Expr node) {
	p = new Unary_node(op, node);
}


//为什么这个不能放在头文件中
ostream&
operator<<(ostream& o, const Expr& t)
{
	t.p->print(o);
	return o;
}



//放在这里写  不然需要写其他class的前置声明
Expr::Expr(const string& op , Expr ex1 , Expr ex2) {

	p = new Binary_node(op, ex1, ex2);
}
